   3 U=0;for Z=1to 10;@(5)=0;@(6)=0
   5 N=0;E=0;W=0;F=0;G=0;H=0;J=0;K=0;L=0;M=0;O=0;R=0;V=0;for Q=1to 4;@(Q)=0;next Q
  20 clear ;A=rnd (4);B=rnd (4);if B=A B=0
  30 C=rnd (4);if (C=A)+(C=B)C=0
  40 D=rnd (4);if (D=A)+(D=B)+(D=C)D=0
  50 gosub 51+A;gosub 51+B;gosub 51+C;gosub 51+D;goto 60
  51 return 
  52 print "PROT.";@(1)=1;return 
  53 print "ARROW";@(2)=1;return 
  54 print "SURF.";@(3)=1;return 
  55 R=rnd (2);@(4)=1;if R=1print "R AT T";return 
  56 print "L AT T";return 
  60 box 30,0,88,6,1;T=rnd (2)-1;if T=0goto 80
  70 box 30,-22,6,44,1;goto 100
  80 box 30,0,6,87,1
 100 S=rnd (5);if Tif S=2goto 100
 110 goto 110+(Smul 10)
 120 X=26
 121 box X,0,1,6,2;X=X-2;if X<-15F=1;goto 160
 122 goto 121
 130 Y=4
 131 box 30,Y,6,1,2;Y=Y+2;if Y>45G=1;goto 160
 132 goto 131
 140 X=34
 141 box X,0,1,6,2;X=X+2;if X>75H=1;goto 160
 142 goto 141
 150 Y=-4
 151 box 30,Y,6,1,2;Y=Y-2;if Y<-44J=1;goto 160
 152 goto 151
 160 S=rnd (3);if S=1goto 100
 165 P=rnd (4);if P=1goto 180
 170 for P=1to 4;gosub 170+rnd (5);next P;goto 180
 171 return 
 172 if T=0box 23,7,2,1,1;K=1;return 
 173 box 37,-7,2,1,1;L=1;return 
 174 box 23,-7,1,2,1;M=1;return 
 175 box 37,7,1,2,1;O=1;return 
 180 Q=rnd (4);CX=38;CY=-15;gosub 190+Q;goto 200
 190 return 
 191 print "right ";return 
 192 print "left ";return 
 193 if T=0print "up ";return 
 194 return 
 200 if @(4)=0goto 209
 201 if Tif R=1 E=E+1
 202 if Tif R=2 W=W+1
 209 if @(3)=0goto 245
 210 if Tif Hif F=0W=W+1
 215 if Tif Fif H=0E=E+1
 220 if T=0if Gif Hif F=0W=W+1
 230 if T=0if Gif Fif H=0E=E+1
 240 if T=0if Fif Hif G=0N=N+1
 245 if @(1)=0goto 295
 250 if Tif Mif O=0E=E+1
 260 if Tif Oif M=0W=W+1
 270 if T=0if Mif Kif O=0E=E+1
 280 if T=0if Oif Kif M=0W=W+1
 290 if T=0if Mif Oif K=0N=N+1
 295 if @(2)=0goto 330
 300 if Q=1 E=E+1
 310 if Q=2 W=W+1
 320 if Q=3 N=N+1
 330 if Tif W=E I=74;goto 410
 340 if Tif W>E I=74;goto 410
 350 if Tif W<E I=-14;goto 410
 360 if T=0if W=Nif N=E I=30;goto 410
 370 if T=0if W>Nif W>E I=74;goto 410
 380 if T=0if N>Wif N>E I=30;goto 410
 390 if T=0if E>Wif E>N I=-14;goto 410
 400 I=30
 410 X=30;Y=-40
 415 X=X+(JX(4)mul 4)+((TR(4)mul JX(4))mul 4);Y=Y+(JY(4)mul 4)+(TR(4)mul JY(4)mul 4)
 416 if &(19)=16clear ;print "BLOWN";print "ENGINE!";STOP
 417 if (X>34)+(X<26)if (Y>4)+(Y<-4)goto 500
 420 for A=1to 2;box X,Y,4,4,3;next A
 430 @(5)=@(5)+1;@(6)=@(6)+ABS(JX(4))+ABS(JY(4))+TR(4);CX=-77;CY=-20;print @(5);print @(6);print @(6)-@(5)
 440 if Y<44if X>-14if X<74goto 415
 450 if ABS(X-I)>8goto 500
 460 if @(5)>40+rnd (80)V=ABS(@(6)-@(5));goto 510
 490 goto 5
 500 CY=8;print "OFF";print "COURSE!";V=200;for B=1to 8000;next B
 510 clear ;U=U+V;print "LEG",#3,Z,#7,V
 520 for V=1to 2000;next V;V=0;next Z
 530 print ;print "FINAL",U
:return ;&(9)=13;FC=7;BC=251;&(0)=127;&(1)=127;&(2)=0;&(3)=0;clear ;NT=0;CX=-25;CY=0;TV=115;TV=106
>